// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
//
// ███╗   ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
// ████╗  ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
// ██╔██╗ ██║██║   ██║   ██║   ██║██║     █████╗
// ██║╚██╗██║██║   ██║   ██║   ██║██║     ██╔══╝
// ██║ ╚████║╚██████╔╝   ██║   ██║╚██████╗███████╗
// ╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝ ╚═════╝╚══════╝
// ------------------------------------------------
//
// This file is automatically generated.
// Please do not edit these files manually.
//
// ------------------------------------------------

#nullable restore

using System;
using System.Linq;
using Elastic.Clients.Elasticsearch.Serialization;

namespace Elastic.Clients.Elasticsearch.IndexLifecycleManagement;

public partial class IndexLifecycleManagementNamespacedClient : Elastic.Clients.Elasticsearch.NamespacedClientProxy
{
	/// <summary>
	/// <para>
	/// Initializes a new instance of the <see cref="Elastic.Clients.Elasticsearch.IndexLifecycleManagement.IndexLifecycleManagementNamespacedClient"/> class for mocking.
	/// </para>
	/// </summary>
	protected IndexLifecycleManagementNamespacedClient() : base()
	{
	}

	internal IndexLifecycleManagementNamespacedClient(Elastic.Clients.Elasticsearch.ElasticsearchClient client) : base(client)
	{
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse DeleteLifecycle(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse DeleteLifecycle(Elastic.Clients.Elasticsearch.Name name)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestDescriptor(name);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse DeleteLifecycle(Elastic.Clients.Elasticsearch.Name name, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestDescriptor(name);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse> DeleteLifecycleAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse> DeleteLifecycleAsync(Elastic.Clients.Elasticsearch.Name name, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestDescriptor(name);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse> DeleteLifecycleAsync(Elastic.Clients.Elasticsearch.Name name, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestDescriptor(name);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.DeleteLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse GetLifecycle(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse GetLifecycle()
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse GetLifecycle(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse GetLifecycle(Elastic.Clients.Elasticsearch.Name? name)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor(name);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse GetLifecycle(Elastic.Clients.Elasticsearch.Name? name, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor(name);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse> GetLifecycleAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse> GetLifecycleAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse> GetLifecycleAsync(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse> GetLifecycleAsync(Elastic.Clients.Elasticsearch.Name? name, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor(name);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse> GetLifecycleAsync(Elastic.Clients.Elasticsearch.Name? name, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestDescriptor(name);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse GetStatus(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse GetStatus()
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse GetStatus(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse> GetStatusAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse> GetStatusAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse> GetStatusAsync(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.GetIlmStatusRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse MigrateToDataTiers(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse MigrateToDataTiers()
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse MigrateToDataTiers(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse> MigrateToDataTiersAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse> MigrateToDataTiersAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse> MigrateToDataTiersAsync(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MigrateToDataTiersRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse MoveToStep(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse MoveToStep(Elastic.Clients.Elasticsearch.IndexName index)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor(index);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse MoveToStep(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse MoveToStep<TDocument>()
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse MoveToStep<TDocument>(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse MoveToStep<TDocument>(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse> MoveToStepAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse> MoveToStepAsync(Elastic.Clients.Elasticsearch.IndexName index, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor(index);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse> MoveToStepAsync(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse> MoveToStepAsync<TDocument>(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse> MoveToStepAsync<TDocument>(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse> MoveToStepAsync<TDocument>(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestDescriptor<TDocument>(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.MoveToStepRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse PutLifecycle(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse PutLifecycle(Elastic.Clients.Elasticsearch.Name name)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestDescriptor(name);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse PutLifecycle(Elastic.Clients.Elasticsearch.Name name, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestDescriptor(name);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse> PutLifecycleAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse> PutLifecycleAsync(Elastic.Clients.Elasticsearch.Name name, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestDescriptor(name);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse> PutLifecycleAsync(Elastic.Clients.Elasticsearch.Name name, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestDescriptor(name);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.PutLifecycleRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse RemovePolicy(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse RemovePolicy(Elastic.Clients.Elasticsearch.IndexName index)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor(index);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse RemovePolicy(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse RemovePolicy<TDocument>()
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse RemovePolicy<TDocument>(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse RemovePolicy<TDocument>(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse> RemovePolicyAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse> RemovePolicyAsync(Elastic.Clients.Elasticsearch.IndexName index, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor(index);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse> RemovePolicyAsync(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse> RemovePolicyAsync<TDocument>(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse> RemovePolicyAsync<TDocument>(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse> RemovePolicyAsync<TDocument>(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestDescriptor<TDocument>(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RemovePolicyRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse Retry(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse Retry(Elastic.Clients.Elasticsearch.IndexName index)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor(index);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse Retry(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse Retry<TDocument>()
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse Retry<TDocument>(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse Retry<TDocument>(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse> RetryAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse> RetryAsync(Elastic.Clients.Elasticsearch.IndexName index, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor(index);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse> RetryAsync(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse> RetryAsync<TDocument>(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse> RetryAsync<TDocument>(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse> RetryAsync<TDocument>(Elastic.Clients.Elasticsearch.IndexName index, System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestDescriptor<TDocument>(index);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.RetryRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse Start(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse Start()
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse Start(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse> StartAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse> StartAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse> StartAsync(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StartIlmRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse Stop(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse Stop()
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse Stop(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse> StopAsync(Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse> StopAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse> StopAsync(System.Action<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequest, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmResponse, Elastic.Clients.Elasticsearch.IndexLifecycleManagement.StopIlmRequestParameters>(request, cancellationToken);
	}
}